--1.参数列表
--1.1优惠券id
local vorchaId = ARGV[1]
--1.2用户id
local userId = ARGV[2]
--2.数据KEY
--2.1库存KEY
local stockKey = "seckill:stock:"..vorchaId
--2.2订单KEY
local orderKey = "seckill:order:"..vorchaId

--3.脚本业务
--3.1判断脚本库存是否充足
local stock = tonumber(redis.call("hget", stockKey,vorchaId)) or 0
if( stock <= 0)then
    --3.2库存不足返回1
    return 1
end
--3.3判断用户是否已经购买过
if redis.call("SISMEMBER", orderKey,userId) == 1 then
    --3.4重复下单返回2
    return 2
end
--3.5库存充足，用户未购买过，进行购买
redis.call("hincrby", stockKey, vorchaId, -1)
redis.call("sadd",orderKey,userId)
--3.6购买完成返回0
return 0
